void domain_relinquish_memory(struct domain *d)
{
+ struct exec_domain *ed;
+
audit_domain(d);
/* Ensure that noone is running over the dead domain's page tables. */
shadow_mode_disable(d);
/* Drop the in-use reference to the page-table base. */
- if ( pagetable_val(d->exec_domain[0]->mm.pagetable) != 0 )
- put_page_and_type(&frame_table[pagetable_val(d->exec_domain[0]->mm.pagetable) >>
- PAGE_SHIFT]);
+ for_each_exec_domain(d, ed) {
+ if ( pagetable_val(ed->mm.pagetable) != 0 )
+ put_page_and_type(&frame_table[pagetable_val(ed->mm.pagetable) >>
+ PAGE_SHIFT]);
+ }
/*
* Relinquish GDT mappings. No need for explicit unmapping of the LDT as